package com.darren.euc.entity;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;

/**
 * 会员信息
 * Created by yanglas 2018/3/11.
 */
@Entity
@Table(name = "euc_print_records")
public class PrintRecord  implements Serializable {
	
	private static final long serialVersionUID = 7846056550353022387L;

	@Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

	/**
	 * 用户ID
	 */
	@JSONField(name="user_id")
    @Column(name = "user_id",columnDefinition = "varchar(50) default '' comment '用户ID'")
    private String userId;
	
	/**
	 * 打印订单编号
	 */
	@JSONField(name="order_number")
    @Column(name = "order_number",columnDefinition = "varchar(50) default '' comment '打印订单编号'")
    private String orderNumber;

    /**
     * 用户名
     */
	@JSONField(name="user_name")
    @Column(name = "user_name",columnDefinition = "varchar(50) default '' comment '用户名'")
    private String userName;
	
	@JSONField(name="member_id")
    @Column(name = "member_id",columnDefinition = "bigint default 0 comment '会员Id'")
    private Integer memberId;
	
	@JSONField(name="member_name")
    @Column(name = "member_name",columnDefinition = "varchar(50) default '' comment '会员名'")
    private String memberName;


	/**
	 * 客户ID
	 */
	@JSONField(name="client_id")
    @Column(name = "client_id",columnDefinition = "bigint default 0 comment '客户ID'")
    private Integer clientId;
	
	/**
	 * 客户名
	 */
	@JSONField(name="client")
    @Column(name = "client",columnDefinition = "varchar(50) default '' comment '桉树空间客户名'")
    private String client;
	
	
	/**
	 * 空间ID
	 */
	@JSONField(name="space_id")
    @Column(name = "space_id",columnDefinition = "bigint default 0 comment '空间ID'")
    private Integer spaceId;
	
	/**
	 * 空间名
	 */
	@JSONField(name="space_name")
    @Column(name = "space_name",columnDefinition = "varchar(250) default '' comment '空间名'")
    private String spaceName;
	
	
	@JSONField(name="user_display_name")
    @Column(name = "user_display_name",columnDefinition = "varchar(50) default '' comment ''")
    private String userDisplayName;	
	
	/**
     * 
     */
	@JSONField(name="group_name")
    @Column(name = "group_name",columnDefinition = "varchar(50) default '' comment ''")
    private String groupName;
	
	

    /**
     * 输出设备序列号
     */
	@JSONField(name="serial_number")
    @Column(name = "serial_number",columnDefinition = "varchar(30) default '' comment '输出设备序列号'")
    private String serialNumber;

    /**
     * 设备位置（取决于配置）
     */
	@JSONField(name="location")
    @Column(name = "location",columnDefinition = "varchar(255) default '' comment '设备位置（取决于配置）'")
    private String location;
    
    /**
     * 任务类型，打印，复印等
     */
	@JSONField(name="job_type")
    @Column(name = "job_type",columnDefinition = "varchar(50) default '' comment '任务类型，打印，复印等'")
    private String jobType;

    
	@JSONField(name="project_name")
    @Column(name = "project_name",columnDefinition = "varchar(250) default '' comment ''")
    private String projectName;
	
	
	
	@JSONField(name="document_name")
    @Column(name = "document_name",columnDefinition = "varchar(250) default '' comment ''")
    private String documentName;
	
	
	
    /**
     * 输出时间
     */
	@JSONField(name="print_time",format="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Column(name = "print_time",nullable = true, columnDefinition = "datetime")
    private Date printTime;

    /**
     * 任务的唯一ID
     * 20170527-8894-b60b345c-7563-4cec-b7e9-e416275e8d13
     */
	@JSONField(name="job_id")
    @Column(name = "job_id",columnDefinition = "varchar(100) default '' comment '任务的唯一ID'")
    private String jobId;
    

    /**
     * 任务名称，打印任务通常是文档名
     */
	@JSONField(name="job_name")
    @Column(name = "job_name",columnDefinition = "varchar(255) default '' comment '任务名称，打印任务通常是文档名'")
    private String jobName;
	
	
	
	 /**
     * 任务时间开始
     */
	@JSONField(name="job_in_time",format="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Column(name = "job_in_time",nullable = true, columnDefinition = "datetime")
    private Date jobInTime;
	
	
	
	 /**
     * 任务时间结束
     */
	@JSONField(name="job_out_time",format="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Column(name = "job_out_time",nullable = true, columnDefinition = "datetime")
    private Date jobOutTime;
	
	/**
	 * 任务状态
	 */
	@JSONField(name="job_status")
    @Column(name = "job_status" ,columnDefinition = "varchar(60) default '' comment '任务状态'")
    private String jobStatus;
	

    /**
     * 输出纸张尺寸A4, A3等
     */
	@JSONField(name="paper_size")
    @Column(name = "paper_size" ,columnDefinition = "varchar(60) default '' comment '输出纸张尺寸A4, A3等'")
    private String paperSize;

    
    /**
     * 黑白面数
     */
//	@JSONField(name="mono_surface")
	@JSONField(name="mono_surface_count")
    @Column(name = "mono_surface" ,columnDefinition = "int default 0  comment '黑白面数'")
    private Integer monoSurface;

	
    /**
     * 彩色面数
     */
//	@JSONField(name="color_surface")
	@JSONField(name="color_surface_count")
    @Column(name = "color_surface",columnDefinition = "int default 0  comment '彩色面数'")
    private Integer colorSurface;
	
	
	/**
	 * 面数
	 */
	@JSONField(name="surface_count")
    @Column(name = "surface_count",columnDefinition = "int default 0  comment '面数'")
    private Integer surfaceCount;
	

	/**
	 * 彩色张数
	 */
	@JSONField(name="color_page_count")
    @Column(name = "color_page_count",columnDefinition = "int default 0  comment '彩色张数'")
    private Integer colorPageCount;
	
	
	/**
	 * 黑白张数
	 */
	@JSONField(name="mono_page_count")
    @Column(name = "mono_page_count",columnDefinition = "int default 0  comment '黑白张数'")
    private Integer monoPageCount;
	
	
	
	/**
	 * 张数
	 */
	@JSONField(name="page_count")
    @Column(name = "page_count",columnDefinition = "int default 0  comment '张数'")
    private Integer pageCount;
	
	
	/**
	 * 复制张数
	 */
	@JSONField(name="copy_count")
    @Column(name = "copy_count",columnDefinition = "int default 0  comment '复制张数'")
    private Integer copyCount;
	
	
	
	@JSONField(name="collate")
    @Column(name = "_collate",columnDefinition = "int default 0  comment ''")
    private Integer collate;
	
	
	
	
	
	
	@JSONField(name="paper_height")
    @Column(name = "paper_height",columnDefinition = "int default 0  comment ''")
    private Integer paperHeight;
	
	
	@JSONField(name="paper_width")
    @Column(name = "paper_width",columnDefinition = "int default 0  comment ''")
    private Integer paperWidth;
	
	@JSONField(name="client_ip")
    @Column(name = "client_ip" ,columnDefinition = "varchar(60) default '' comment ''")
    private String clientIp;
	
	@JSONField(name="client_name")
    @Column(name = "client_name" ,columnDefinition = "varchar(100) default '' comment ''")
    private String clientName;
	
	
	@JSONField(name="client_mac")
    @Column(name = "client_mac" ,columnDefinition = "varchar(60) default '' comment ''")
    private String client_mac;
	
	
	@JSONField(name="driver_name")
    @Column(name = "driver_name" ,columnDefinition = "varchar(250) default '' comment ''")
    private String driverName;
	
	
	@JSONField(name="printer_name")
    @Column(name = "printer_name" ,columnDefinition = "varchar(250) default '' comment ''")
    private String printerName;
	
	
	@JSONField(name="level_name")
    @Column(name = "level_name" ,columnDefinition = "varchar(50) default '' comment ''")
    private String levelName;
	
    /**
     * 单双面
     */
	@JSONField(name="duplex")
    @Column(name = "duplex",columnDefinition = "int default 0  comment '单双面'")
    private Integer duplex;
	
	/**
	 * 总费用
	 */
	@JSONField(name="total_cost")
	@Column(name = "total_cost",columnDefinition = "Decimal(13,2) default '0' comment '总费用'")
	private Double totalCost;
	
	
	/**
	 * 黑白花费
	 */
	@JSONField(name="mono_cost")
	@Column(name = "mono_cost",columnDefinition = "Decimal(13,2) default '0' comment '黑白花费'")
	private Double monoCost;
	
	/**
	 * 彩色花费
	 */
	@JSONField(name="color_cost")
	@Column(name = "color_cost",columnDefinition = "Decimal(13,2) default '0' comment '彩色花费'")
	private Double colorCost;
	
	
	
	@JSONField(name="final_result")
    @Column(name = "final_result",columnDefinition = "int default 0  comment ''")
    private Integer finalResult;



	public Integer getId() {
		return id;
	}



	public void setId(Integer id) {
		this.id = id;
	}



	public String getUserId() {
		return userId;
	}



	public void setUserId(String userId) {
		this.userId = userId;
	}



	public String getUserName() {
		return userName;
	}



	public void setUserName(String userName) {
		this.userName = userName;
	}



	public String getUserDisplayName() {
		return userDisplayName;
	}



	public void setUserDisplayName(String userDisplayName) {
		this.userDisplayName = userDisplayName;
	}



	public String getGroupName() {
		return groupName;
	}



	public void setGroupName(String groupName) {
		this.groupName = groupName;
	}



	public String getSerialNumber() {
		return serialNumber;
	}



	public void setSerialNumber(String serialNumber) {
		this.serialNumber = serialNumber;
	}



	public String getLocation() {
		return location;
	}



	public void setLocation(String location) {
		this.location = location;
	}



	public String getJobType() {		
		return jobType;
	}



	public void setJobType(String jobType) {
		if("PRINT".equals(jobType)){
			this.jobType = "打印";
		}else if("COPY".equals(jobType)){
			this.jobType = "复印";
		}else if("SCAN".equals(jobType)){
			this.jobType = "扫描";
		}else{
			this.jobType = jobType;
		}		
	}



	public String getProjectName() {
		return projectName;
	}



	public void setProjectName(String projectName) {
		this.projectName = projectName;
	}



	public String getDocumentName() {
		return documentName;
	}



	public void setDocumentName(String documentName) {
		this.documentName = documentName;
	}



	public Date getPrintTime() {
		return printTime;
	}



	public void setPrintTime(Date printTime) {
		this.printTime = printTime;
	}



	public String getJobId() {
		return jobId;
	}



	public void setJobId(String jobId) {
		this.jobId = jobId;
	}



	public String getJobName() {
		return jobName;
	}



	public void setJobName(String jobName) {
		this.jobName = jobName;
	}



	public Date getJobInTime() {
		return jobInTime;
	}



	public void setJobInTime(Date jobInTime) {
		this.jobInTime = jobInTime;
	}



	public Date getJobOutTime() {
		return jobOutTime;
	}



	public void setJobOutTime(Date jobOutTime) {
		this.jobOutTime = jobOutTime;
	}



	public String getJobStatus() {
		return jobStatus;
	}



	public void setJobStatus(String jobStatus) {
		this.jobStatus = jobStatus;
	}



	public String getPaperSize() {
		return paperSize;
	}



	public void setPaperSize(String paperSize) {
		this.paperSize = paperSize;
	}



	public Integer getMonoSurface() {
		return monoSurface;
	}



	public void setMonoSurface(Integer monoSurface) {
		this.monoSurface = monoSurface;
	}



	public Integer getColorSurface() {
		return colorSurface;
	}



	public void setColorSurface(Integer colorSurface) {
		this.colorSurface = colorSurface;
	}



	public Integer getSurfaceCount() {
		return surfaceCount;
	}



	public void setSurfaceCount(Integer surfaceCount) {
		this.surfaceCount = surfaceCount;
	}



	public Integer getColorPageCount() {
		return colorPageCount;
	}



	public void setColorPageCount(Integer colorPageCount) {
		this.colorPageCount = colorPageCount;
	}



	public Integer getMonoPageCount() {
		return monoPageCount;
	}



	public void setMonoPageCount(Integer monoPageCount) {
		this.monoPageCount = monoPageCount;
	}



	public Integer getPageCount() {
		return pageCount;
	}



	public void setPageCount(Integer pageCount) {
		this.pageCount = pageCount;
	}



	public Integer getCopyCount() {
		return copyCount;
	}



	public void setCopyCount(Integer copyCount) {
		this.copyCount = copyCount;
	}



	public Integer getCollate() {
		return collate;
	}



	public void setCollate(Integer collate) {
		this.collate = collate;
	}



	public Integer getPaperHeight() {
		return paperHeight;
	}



	public void setPaperHeight(Integer paperHeight) {
		this.paperHeight = paperHeight;
	}



	public Integer getPaperWidth() {
		return paperWidth;
	}



	public void setPaperWidth(Integer paperWidth) {
		this.paperWidth = paperWidth;
	}



	public String getClientIp() {
		return clientIp;
	}



	public void setClientIp(String clientIp) {
		this.clientIp = clientIp;
	}



	public String getClientName() {
		return clientName;
	}



	public void setClientName(String clientName) {
		this.clientName = clientName;
	}



	public String getClient_mac() {
		return client_mac;
	}



	public void setClient_mac(String client_mac) {
		this.client_mac = client_mac;
	}



	public String getDriverName() {
		return driverName;
	}



	public void setDriverName(String driverName) {
		this.driverName = driverName;
	}



	public String getPrinterName() {
		return printerName;
	}



	public void setPrinterName(String printerName) {
		this.printerName = printerName;
	}



	public String getLevelName() {
		return levelName;
	}



	public void setLevelName(String levelName) {
		this.levelName = levelName;
	}



	public Integer getDuplex() {
		return duplex;
	}



	public void setDuplex(Integer duplex) {
		this.duplex = duplex;
	}



	public Double getTotalCost() {
		return totalCost;
	}



	public void setTotalCost(Double totalCost) {
		this.totalCost = totalCost;
	}



	public Double getMonoCost() {
		return monoCost;
	}



	public void setMonoCost(Double monoCost) {
		this.monoCost = monoCost;
	}



	public Double getColorCost() {
		return colorCost;
	}



	public void setColorCost(Double colorCost) {
		this.colorCost = colorCost;
	}



	public Integer getFinalResult() {
		return finalResult;
	}



	public void setFinalResult(Integer finalResult) {
		this.finalResult = finalResult;
	}



	public Integer getMemberId() {
		return memberId;
	}



	public void setMemberId(Integer memberId) {
		this.memberId = memberId;
	}



	public String getMemberName() {
		return memberName;
	}



	public void setMemberName(String memberName) {
		this.memberName = memberName;
	}



	public Integer getClientId() {
		return clientId;
	}



	public void setClientId(Integer clientId) {
		this.clientId = clientId;
	}



	public String getClient() {
		return client;
	}



	public void setClient(String client) {
		this.client = client;
	}



	public Integer getSpaceId() {
		return spaceId;
	}



	public void setSpaceId(Integer spaceId) {
		this.spaceId = spaceId;
	}



	public String getSpaceName() {
		return spaceName;
	}



	public void setSpaceName(String spaceName) {
		this.spaceName = spaceName;
	}



	public String getOrderNumber() {
		return orderNumber;
	}



	public void setOrderNumber(String orderNumber) {
		this.orderNumber = orderNumber;
	}
	
}
